//
//  game.hpp
//  RPG
//
//  Created by Matt Bailey on 28/12/2013.
//  Copyright (c) 2013 Matt Bailey. All rights reserved.
//

#pragma once

#include "GL/glew.h"
#include "GLFW/glfw3.h"
#include "glm/glm.hpp"

#include "window.hpp"
#include "graphics.hpp"
#include "camera.hpp"
#include "map.hpp"

#include "entities.hpp"

#include <iostream>

using namespace std;

class Game {
    
    enum gameState {Playing, Paused, Halted};
    static gameState _gameState;
    
    static string trimConfig(string start);
    
    static string cfgPath;
    static string cfgSource;
    
    protected:
        static GLFWwindow* window;
    
    public:
        static void init();
        static void loop();
    
        static void checkInput();
        static void parseConfig();
    
        static GLFWwindow* &setWindow() { return window; }
        static GLFWwindow* getWindow() { return window; }
    
};